<?php
if(!defined('BASE_DIR'))die('Cannot access the file !');
/**
 * -+-----------------------------------------
 * |PHP Framework
 * |Copyright (c) 2010 jinke.[iblue.cc]
 * |E-mail: mejinke@gmail.com
 * |Date:  2010-09-11
 * -+-----------------------------------------
 */

 /**
 * 错误信息管理函
 * @param $msg
 */
function message_error($type,$description='',$msg='',$title = 'Error',$tag = null)
{
	ob_start();
	$file ='';
	if ($tag == 'config')
	{
		$msg = BASE_DIR.'config.inc.php';
		require FRAMEWORK_DIR.'misc/messages/Message_Error.php';
	}
	else 
	{
		//检测是否开启错误提示
		if (!Config::get('sys_error'))
			$file = SYSTEM_DIR.'messages/Message_500.php';
		
		if(is_file($file))
			require $file;
		else
			require FRAMEWORK_DIR.'misc/messages/Message_Error.php';
	}
	ob_end_flush();
	exit;

}



/**
 * 显示404错误页
 */
function message_404()
{
	ob_start();
	$msg=$_SERVER['REQUEST_URI'];
	$file = SYSTEM_DIR.'messages/Message_404.php';
	if(is_file($file))
		require $file;
	else
		require FRAMEWORK_DIR.'misc/messages/Message_404.php';
	ob_end_flush();
	exit;
}

/**
 * 显示500错误页
 */
function message_500()
{
	ob_start();
	$file = SYSTEM_DIR.'messages/Message_500.php';
	if(is_file($file))
		require $file;
	else 
		message_error('Load File','无法加载500错误页面！',message_debug(debug_backtrace()));
	ob_end_flush();
	exit;
}


/**
 * 返回错误调试信息
 * @param array $debug debug_backtrace()
 */
function message_debug($debug){
	$debug_file = $debug[0]['file'];
	$debug_line = $debug[0]['line'];
	return '文件地址：'.$debug_file.'<br/>行号：'.$debug_line;
}



/**
 * 自定义错误 输出
 * @param string $num
 * @param string $msg
 * @param string $file
 * @param string $line
 */
function message_errors($num, $msg, $file, $line)
{
	if(strpos(' '.$msg,'mysql_pconnect()')==1)
	{
		message_error('Mysql Error','连接数据库失败：'.$msg.'<br>文件地址：'.$file,'出错行号：'.$line);
	}
	else
		message_error('程序运行错误','错误描述：'.$msg.'<br>文件地址：'.$file,'出错行号：'.$line);
}

if (Config::get('sys_error'))
	set_error_handler('message_errors',E_ALL);



?>
